const aesjs = require('aes-js') // 导入aes-js库，需要使用npm install aes-js进行安装

/**
 * 进行加密
 * @param {String} data 需要进行加密的文本
 * @param {String} mobile 密钥，需要传递注册时使用的手机号
 * @returns {String} 加密后的结果
 */
export function encrypt_password(data: string, mobile: string) {
  const key = mobile +'_^_^_'
  const iv = '__^sxiangyiju^__'
  const keyBytes = aesjs.utils.utf8.toBytes(key) // 将密钥转换为字节类型数据
  const ivBytes = aesjs.utils.utf8.toBytes(iv) // 将偏移量转换为字节类型数据
  const aesCbc = new aesjs.ModeOfOperation.cbc(keyBytes, ivBytes) // 创建一个aes对象

  const textBytes = aesjs.utils.utf8.toBytes(data) // 将需要进行加密的文本转换为字节类型数据
  const paddedBytes = aesjs.padding.pkcs7.pad(textBytes) // 使用Pkcs7对数据进行填充

  const encryptedBytes = aesCbc.encrypt(paddedBytes) // 使用aes对象对数据进行加密
  const encryptedHex = aesjs.utils.hex.fromBytes(encryptedBytes) // 将加密后的数据转换为十六进制字符串

  return encryptedHex // 返回加密后的结果
}
